#pragma once

#include "glare.core.Prerequisites.h"

namespace Glare {

	class FeatureSupport
	{
	public : enum Enum
			 {
				 NotSupported,
				 Supported
			 };

	public : static string ToString(const Enum& feature_support);
	};

	class DriverStage
	{
		// IA, VT, VS, HS, DS, GS, RZ, PS, OM
	public : enum Type
			 {
				 None = 0,
				 InputAssembler = 1,
				 VertexTransform = 2,
				 VertexShader = 4,
				 HullShader = 8,
				 DomainShader = 16,
				 GeometryShader = 32,
				 Rasterizer = 64,
				 PixelShader = 128,
				 OutputMerger = 256,
				 All = 0xFFFFFFFF,

				 Min = InputAssembler,
				 Max = OutputMerger,
			 };

	public : static string ToString(const Type& driver_stage_type);
	};

}
